import { type RouteRecordRaw } from 'vue-router'

export type LayoutRouterRaw = RouteRecordRaw & {
  /**
   * 排序字段
   */
  sort: number
  meta: {
    /**
     * 菜单名称
     */
    title: string

    /**
     * 是否缓存
     */
    keepAlive: boolean

    /**
     * 菜单图标
     */
    icon: string

    /**
     * 是否需要展示在菜单栏
     */
    noMenu?: boolean

    /**
     * 权限码
     */
    permissionCode?: string
  }
}

export type RouterTabRaw = LayoutRouterRaw & {
  /**
   * 路由名称
   */
  name: string

  /**
   * 路由全路径
   */
  fullPath: string

  /**
   * 排序字段
   */
  sort?: number

  /**
   * 路由路径
   */
  path: string

  /**
   * query 参数
   */
  query?: any
}

export interface Pagination {
  /**
   * 当前页码
   */
  pageNo: number

  /**
   * 每页页宽
   */
  pageSize: number

  /**
   * 总页码数量
   */
  pages: number

  /**
   * 总数量
   */
  total: number
}
